The present invention relates to data communications, in particular, to systems, methods and computer program products for implementing communications protocols.
Traditional mainframe computer configurations typically provide for user interface to a host computer through computer terminals that are either directly connected to the host or connected to the host by relatively high speed networks. Examples of such a configurations include configurations that provide IBM 3270 and IBM 5250 terminal access to host applications executing on a mainframe computer using a Telnet protocol.
As computing and communications technology has evolved, however, the connections between network devices have become more widely distributed. For example, modem networks may be distributed over wide geographic areas, such as the global Internet. Point-to-point communications in such a far-flung network may be routed through a multitude of networks, subnetworks and devices, and thus can be significantly delayed. In addition, some modem networks may include low bandwidth elements, such as wireless links, that may also introduce significant delays. These delays can be particularly disadvantageous for host/terminal applications.
Notwithstanding the expansion of networks, host/terminal applications still play a significant role. For example, legacy mainframe applications may be tied to more advanced distributed networks, with devices such as personal computers accessing the mainframe applications using, for example, terminal emulators. These terminal emulators typically use the original structured protocols of the host applications, such as the Telnet protocol.
Although host applications can be adapted to use a more state-of-the art communications infrastructure, the performance of a host application may be hampered by delays introduced by far flung network routing and lower bandwidth channels such as wireless links. For this reason, among others, conventional procedures for communicating between terminals and hosts may be disadvantageous. However, because of the large installed base of conventional host applications and terminals designed for using these applications, it may be cost ineffective or infeasible to extensively modify these existing applications to incorporate more efficient communications techniques suited to these environments.
For example, a Telnet logon protocol for connecting a 3270 or 5250 terminal (or terminal emulator) to a host application includes several information transfers between the terminal and the host in order to establish a session. As illustrated in FIG. 1, a Telnet session is initiated by a host 110 sending a xe2x80x9cDO TTxe2x80x9d terminal type option message to a terminal 120, indicating that the host 110 desires to begin terminal type negotiation. In response, the terminal 120 sends a xe2x80x9cWILL TTxe2x80x9d terminal type option message to the host 110, indicating that the terminal 120 supports terminal type negotiation. The host 110 then sends a xe2x80x9cSEND TTxe2x80x9d message (SB and SE represent subnegotiation delimiters), representing a request for the terminal 120 to send its terminal type, e.g., a value indicating whether the terminal 120 is a 3270, 5250, or other type of supported terminal. In response, the terminal 120 sends a xe2x80x9cTT_IStypexe2x80x9d message including the appropriate terminal type. The host 110 responds with a transfer including xe2x80x9cDO EOR, WILL EOR, DO BIN, WILL BINxe2x80x9d messages, requesting the terminal 120 to engage Telnet end of record and binary transmission options. The terminal 120 responds by sending a transfer including xe2x80x9cWILL EOR, DO EOR, WILL BIN, DO BINxe2x80x9d messages indicating support for the requested options. The host 110 then repeats the xe2x80x9cDO BIN WILL BINxe2x80x9d messages, and data flows between the terminal 120 and the host 110.
The Telnet logon procedure illustrated in FIG. 1 involves eight individual transfers. In a lower bandwidth environment, such as an internet or wireless environment, this number of transfers can incur significant delays as the various options are negotiated. This can severely impact the performance of a Telnet application, especially an application involving frequent connection and disconnection of the terminal and host.
Conventional techniques for addressing this performance problem include using a disconnect function that allows a user to disconnect from a Systems Network Architecture (SNA) application for a period of time and reconnect at the same point in the application at which the user disconnected, thus potentially reducing the overhead associated with reconnecting to the application. Similarly, a short hold mode has been implemented in SNA applications which allows a physical link, such as an X.25 modem, to be shut down during periods of no traffic in an SNA session without taking down the overlying SNA session. Unfortunately, however, these approaches typically involve significant modification of the SNA application, and may still produce less than desired levels of performance. Another approach described in U.S. patent application Ser. No. 08/852,461, assigned to the assignee of the present invention, utilizes proxies connected between the terminal and the host and communicating using a private protocol to reduce communications overhead.
In light of the foregoing, it is an object of the present invention to provide improved communications using option-negotiating protocols such as Telnet.
It is another object of the present invention to provide improved host/terminal communications in bandwidth limited environment.
It is yet another object of the present invention to provide improved host/terminal communications with minimal modification of existing hardware and/or software.
These and other objects, features and advantages are provided according to the present invention by data communications systems, methods and computer program products in which presumptive negotiation is performed between first and second entities that communicate using a communications protocol, based on a priori knowledge of options supported by the entities. In this manner, the number of information transfers required, for example, to initiate a host/terminal session, can be reduced. In bandwidth-limited environments, such as in an internet or a wireless data communications systems, this reduction in data transfers can result in significantly improved performance.
In particular, according to the present invention, presumptive negotiation is provided between a first entity and a second entity in a data communications network, each of which is operative to communicate according to a communications protocol including a plurality of negotiable options. A first information transfer from the first entity to the second entity is performed according to the communications protocol, the first information transfer including a message indicating support of an option and a message conforming to the option. A second information transfer from the second entity to the first entity is then responsively performed according to the communications protocol, the second information transfer including a message indicating support of the option and a message responding to the message conforming to the option. According to an embodiment of the present invention, the first information transfer includes transfer of a message indicating support of a terminal type negotiation option and a message conforming to the terminal type negotiation option, and the second information transfer includes transfer of a message indicating support of the terminal type negotiation option and a message responding to the message conforming to the terminal type negotiation option. The communications protocol may include a Telnet or other option-negotiating protocol.
According to an aspect of the present invention, the first information transfer includes transfer of a message requesting terminal type negotiation and a message requesting identification of a terminal type supported by the second entity, followed by a second information transfer including transfer of a message confirming terminal type negotiation and a message identifying a terminal type supported by the second entity. According to another aspect, the first information transfer includes transfer of a message indicating support of terminal type negotiation and a message identifying a terminal type supported by the first entity, and the second information transfer includes transfer of a message confirming terminal type negotiation and a message requesting identification of a terminal type supported by the first entity.
In yet another embodiment according to the present invention, the first and second information transfers occur via a first interceptor connected to a host and a second interceptor connected between the first interceptor and a terminal. The first information transfer may include transfer of information from the first interceptor to the second interceptor, and the second information transfer may include transfer of information from the second interceptor to the first. Option negotiation may occur between the terminal and the second interceptor responsive to the first information transfer; and option negotiation may occur between the host and the first interceptor responsive to the second information transfer.
According to another aspect of the present invention, a third information transfer between the first and second entities may follow the second information transfer, the third information transfer including data. The third information transfer may also include transfer of a combination of data and an option command between the first entity and the second entity, followed by processing of the transferred data at the second entity according to the transferred option command.
Data communications systems, apparatus and computer program products for employing the above-described presumptive negotiation functions are also described. Improved performance for bandwidth-limited applications such as wireless or internet data communications applications may thereby be provided.